/**
 * 认证服务接口 - 用户认证和企业注册的核心业务接口
 *
 * 开发人员：徐少洋
 * 开发时间：2025-10-20 至 2025-10-25
 * 模块职责：定义用户认证和企业注册的核心业务接口，支持多租户认证和企业管理
 *
 * 技术要点：
 * - 多租户用户认证机制
 * - 企业注册和管理员账户创建
 * - JWT令牌生成和管理
 * - 用户权限和角色分配
 * - 密码加密和安全验证
 *
 * 开发故事：负责认证服务接口的设计和定义，与认证控制器和安全配置深度配合，支持安全可靠的用户认证和企业注册功能。
 */
package com.pbl.auth;

import com.pbl.dto.EnterpriseRegisterRequest;
import com.pbl.entity.User;

import java.util.Map;

public interface AuthService {
    /**
     * 用户登录认证
     * @param enterpriseId 企业ID
     * @param username 用户名
     * @param password 密码
     * @return 认证结果和JWT令牌
     */
    Map<String, Object> login(Long enterpriseId, String username, String password);

    /**
     * 用户注册（企业内注册）
     * @param enterpriseId 企业ID
     * @param username 用户名
     * @param password 密码
     * @param email 邮箱
     * @return 注册的用户对象
     */
    User register(Long enterpriseId, String username, String password, String email);

    /**
     * 企业注册（创建企业+管理员账号）
     * @param request 企业注册请求
     * @return 注册结果和管理员账户信息
     */
    Map<String, Object> registerEnterprise(EnterpriseRegisterRequest request);
}
